I. Field of the Invention
The present invention relates to CDMA (Code Division Multiple Access) cellular telephone and wireless data communications with data rates up to multiple T1 (1.544 Mbps) and higher (>100 Mbps), and to optical, CDMA with data rates in the Gbps and higher ranges. Applications are mobile, point-to-point and satellite communication networks. More specifically the present invention relates to novel multiple data rate algorithms for hybrid and generalized hybrid complex Walsh orthogonal CDMA codes for use as the channelization codes for multiple data rate users. These new algorithms and codes offer substantial improvements over the current real Walsh orthogonal variable spreading factor (OVSF) CDMA codes for the next generation wideband CDMA (W-CDMA).
II. Description of the Related Art
Current art is represented by the work on orthogonal spreading factor (OVSF) real Walsh codes for wideband CDMA (W-CDMA) for the third generation CDMA (G3) proposed standard candidates and for broadband wireless communications, and the previous work on the real Walsh fast transform algorithms. These are documented in the references which include an issue of the IEEE communications journal devoted to wideband CDMA including OVSF, issues of the IEEE communications magazine that are devoted to “Multiple Access for Broadband Networks” and “Wideband CDMA”. an issue of the IEEE personal communications devoted to “Third Generation Mobile Systems in Europe”, and the widely used reference “Walsh functions and their Applications” on real Walsh technology which includes algorithms for the fast Walsh transform. The new hybrid complex Walsh and generalized hybrid complex Walsh orthogonal CDMA codes being addressed in this invention for application to multiple data rate users, have been disclosed in a previous patent application Ser. No. 09/826,117 for constant data rate communications.
Current art using real Walsh orthogonal CDMA channelization codes to generate OVSF codes for multiple data rate users is represented by the scenario described in the following with the aid of equations (1) and (2) and FIGS. 1, 2, 3, 4. This scenario considers CDMA communications spread over a common frequency band for each of the communication channels. These CDMA communications channels for each of the multiple rate users are defined by assigning a unique real Walsh orthogonal spreading code to each user. This real Walsh code has a maximum length of N chips with N=2M where M is an integer, with shorter lengths of 2, 4, . . . , N/2 for the higher data rate users. These multiple length real Walsh codes have limited orthogonality properties and occupy the same frequency band. These Walsh encoded user signals are summed and then re-spread over the same frequency band by PN codes, to generate the CDMA communications signal that is modulated and transmitted. The communications link consists of a transmitter, propagation path, and receiver, as well as interfaces and control.
It is assumed that the communication link is in the communications mode with the users communicating at symbol rates equal to the code repetition rates of their respective communications channels and that the synchronization is sufficiently accurate and robust to support this communications mode. In addition, the power differences between users due to differences in data rates and in communication link budget parameters is assumed to be incorporated in the data symbol amplitudes prior to the CDMA encoding in the CDMA transmitter, and the power is uniformly spread over the wideband by proper selection of the CDMA pulse waveform. It is self evident to anyone skilled in the CDMA communications art that these communications mode assumptions are both reasonable and representative of the current CDMA art and do not limit the applicability of this invention.
Transmitter equations (1) describe a representative real Walsh CDMA encoding for multiple data rate users for the transmitter in FIG. 1. These equations represent a considerably more sophisticated and improved implementation of current OVSF CDMA communications which has been developed to help support the new invention for hybrid complex Walsh and generalized hybrid complex Walsh CDMA orthogonal codes.
Lowest data rate users are assumed to communicate at the lowest symbol rate equal to the code repetition rate of the N chip real Walsh code, which means they are assigned N chip code vectors from the N×N real Walsh code matrix WN in 1 for their channelization codes. Higher data rate users will use shorter real Walsh codes. The reference real Walsh code matrix WN has N Walsh row code vectors WN(c) each of length N chips and indexed by c=0, 1, . . . , N−1, with WN(c)=[WN(c,1), . . . , WN(c,N)] wherein WN(c,n) is chip n of code u. Walsh code chip n of code vector u has the possible values WN(c,n)=+/−1.
Multiple data rate menu in 2 lists the possible user data symbol rates Rs and the corresponding code lengths and symbols transmitted over each N chip reference code length. User symbol rate Rs=1/NT is the code repetition rate 1/NT of the N chip code over the code time interval NT. User data rate Rb in bits/second is equal to Rb=Rsbs where bs is the number of data bits encoded in each data symbol. Assuming a constant bs for all of the multiple data rate users, the user data rate becomes directly proportional to the user symbol rate Rb˜Rs which means the user symbol rate menu in 1 is equivalent to the user data rate menu.
User data symbols and channelization codes are listed in 3 for the multiple rate users. Users are grouped into the data rate categories corresponding to their respective code chip lengths 2, 4, 8, . . . , N/2, N chips. User groups are indexed by m=1, 2, . . . , M where group m consists of all users with N(m)=2m chip length codes drawn from the N(m)×N(m) real Walsh code matrix WN(m). Users within group m are identified by the index um which is set equal to the Walsh channelization code vector index in WN(m). Code chip nm of the user code um is equal to WN(m)(um, nm) where nm=0, 1, 2, . . . , N(m)−1 is the chip index. User data symbols Z(um,km) are indexed by um,km where the index km=0, 1, 2, . . . , N/N(m)−1 identifies the data symbols of um which are transmitted over the N chip code block. The total number of user data symbols transmitted per N chip block is N which means the number of channel assignments {um, m=1, 2, . . . , M} will be less than N for multiple data rate CDMA communications when there is at least one user using a higher data rate.                Current multiple data rate real Walsh CDMA encoding (1) for transmitter        
      1    ⁢                  ⁢    N    ⁢                  ⁢    chip    ⁢                  ⁢    Walsh    ⁢                  ⁢    code    ⁢                  ⁢    block                                            W            N                    =                    ⁢                      Walsh            ⁢                                                  ⁢            N            ×            N            ⁢                                                  ⁢            orthogonal            ⁢                                                  ⁢            code            ⁢                                                  ⁢            matrix            ⁢                                                  ⁢            consisting            ⁢                                                  ⁢            of                                                                  ⁢                      N            ⁢                                                  ⁢            rows            ⁢                                                  ⁢            of            ⁢                                                  ⁢            N            ⁢                                                  ⁢            chip            ⁢                                                  ⁢            code            ⁢                                                  ⁢            vectors                                                        =                    ⁢                                    [                                                W                  N                                ⁡                                  (                  c                  )                                            ]                        ⁢                                                  ⁢            matrix            ⁢                                                  ⁢            of            ⁢                                                  ⁢            row            ⁢                                                  ⁢            vectors            ⁢                                                  ⁢                                          W                N                            ⁡                              (                c                )                                                                                  =                    ⁢                                    [                                                W                  N                                ⁡                                  (                                      c                    ,                    n                                    )                                            ]                        ⁢                                                  ⁢            matrix            ⁢                                                  ⁢            of            ⁢                                                  ⁢            elements            ⁢                                                  ⁢                                          W                N                            ⁡                              (                                  c                  ,                  n                                )                                                                                                                            W                N                            ⁡                              (                c                )                                      =                        ⁢                                          Walsh                ⁢                                                                  ⁢                code                ⁢                                                                  ⁢                vector                ⁢                                                                  ⁢                c                ⁢                                                                  ⁢                for                ⁢                                                                  ⁢                c                            =              0                                ,          1          ,          …          ⁢                                          ,                      N            -            1                                                        =                    ⁢                      [                                                            W                  N                                ⁡                                  (                                      c                    ,                    0                                    )                                            ,                                                W                  N                                ⁡                                  (                                      c                    ,                    1                                    )                                            ,              …              ⁢                                                          ,                                                W                  N                                ⁡                                  (                                      c                    ,                                          N                      -                      1                                                        )                                                      ]                                                                    =                        ⁢                          1              ×              N              ⁢                                                          ⁢              row              ⁢                                                          ⁢              vector              ⁢                                                          ⁢              of              ⁢                                                          ⁢              chips              ⁢                                                          ⁢                                                W                  N                                ⁡                                  (                                      c                    ,                    0                                    )                                                              ,          …          ⁢                                          ,                                    W              N                        ⁡                          (                              c                ,                                  N                  -                  1                                            )                                                                                              W              N                        ⁡                          (                              c                ,                n                            )                                =                    ⁢                      Walsh            ⁢                                                  ⁢            code            ⁢                                                  ⁢            c            ⁢                                                  ⁢            chip            ⁢                                                  ⁢            n                                                        =                    ⁢                                    +                              /                                      +                          1              ⁢                                                          ⁢              possible              ⁢                                                          ⁢              values                                                          2 Multiple data rate menu N chip real Walsh symbol rate        
Rs=User symbol rate, symbols/second=1/NT where T = Chip repetition intervalSymbol rate menu for multiple data ratesSymbol rate,Code length,Symbols perSymbols/secondchipsN chipsRs=1/2T2N/2=1/4T4N/4=1/8T8N/8.........=1/2NTN/22=1/NTN1                3 User data symbols and channelization codes                    Users are categorized into M groups according to the number of code chips.                        
                    m        =                ⁢                  Index          ⁢                                          ⁢          of          ⁢                                          ⁢          the          ⁢                                          ⁢          user          ⁢                                          ⁢          groups                                                  =                    ⁢          1                ,        2        ,        …        ⁢                                  ,        M                                          u          m                =                ⁢                              One            ⁢                                                  ⁢            of            ⁢                                                  ⁢            up            ⁢                                                  ⁢            to            ⁢                                                  ⁢                          N              ⁡                              (                m                )                                              =                                    2              m                        ⁢                                                  ⁢            possible            ⁢                                                  ⁢            users            ⁢                                                  ⁢            in            ⁢                                                  ⁢            group            ⁢                                                  ⁢            m                                                                        N            ⁡                          (              m              )                                =                    ⁢                      Number            ⁢                                                  ⁢            of            ⁢                                                  ⁢            code            ⁢                                                  ⁢            chips            ⁢                                                  ⁢            for            ⁢                                                  ⁢            the            ⁢                                                  ⁢            codes            ⁢                                                  ⁢            in            ⁢                                                  ⁢            the            ⁢                                                  ⁢            user                          ⁢                                  ⁢                                  ⁢                  group          ⁢                                          ⁢          m                                        =                ⁢                  2                      m            +            1                                                                  User data symbols                        
                              Z          ⁡                      (                          u                              m                ,                                  k                  m                                                      )                          =                ⁢                  User          ⁢                                          ⁢                      u            m                    ⁢                                          ⁢          data          ⁢                                          ⁢          symbol          ⁢                                          ⁢                      k            m                                                            k          m                =                ⁢                  Index          ⁢                                          ⁢          for          ⁢                                          ⁢          the          ⁢                                          ⁢          user          ⁢                                          ⁢          data          ⁢                                          ⁢          symbols          ⁢                                          ⁢          over          ⁢                                          ⁢          the          ⁢                                          ⁢          N          ⁢                                                            ⁢                                                          ⁢          chip                                                ⁢                              code            ⁢                                                  ⁢            block                    ,                                          ⁢                      for            ⁢                                                  ⁢            a            ⁢                                                  ⁢            user            ⁢                                                  ⁢            from            ⁢                                                  ⁢            group            ⁢                                                  ⁢            m                                                            =                    ⁢          0                ,        1        ,        2        ,        …        ⁢                                  ,                              N            ⁢                          /                        ⁢                          N              ⁡                              (                m                )                                              -          1                                                                                    User channelization codes within each group are selected from a subset of the orthogonal codes in the Walsh code matrix.                                    WN(m) (um)=Walsh 1×2m dimensional code vector um in the N(m)×N(m) Walsh code matrix, for user um in the group m                    WN(m) (um,nm)=User um code chip nm=0, 1, 2, . . . , N(m)−1                                                                                4 Real Walsh encoding and channel combining        
                                          Z            ~                    ⁡                      (            n            )                          =                ⁢                  Real          ⁢                                          ⁢          Walsh          ⁢                                          ⁢          CDMA          ⁢                                          ⁢          encoded          ⁢                                          ⁢          chip          ⁢                                          ⁢          n                                        =                ⁢                              ∑                          m              =              1                        M                    ⁢                                          ⁢                                    ∑                              u                m                                      ⁢                                                  ⁢                                          Z                ⁡                                  (                                      u                                          m                      ,                      k                                                        )                                            ⁢                                                W                                      N                    ⁡                                          (                      m                      )                                                                      ⁡                                  (                                                            u                      m                                        ,                                          n                      =                                                                        n                          m                                                +                                                                              k                            m                                                    ⁢                                                      N                            ⁡                                                          (                              m                              )                                                                                                                                                            )                                                                                        5 PN scrambling        
                                                        P              R                        ⁡                          (              n              )                                ,                                                    P                1                            ⁡                              (                n                )                                      =                        ⁢                          PN              ⁢                                                          ⁢              code              ⁢                                                          ⁢              chip              ⁢                                                          ⁢              n              ⁢                                                          ⁢              for              ⁢                                                          ⁢              real                                ,                                          ⁢                      imaginary            ⁢                                                  ⁢            axes                          ⁢                                                                  ⁢        axes                                          Z          ⁡                      (            n            )                          =                ⁢                  PN          ⁢                                          ⁢          scrambled          ⁢                                          ⁢          real          ⁢                                          ⁢          Walsh          ⁢                                          ⁢          encoded          ⁢                                          ⁢          data          ⁢                                          ⁢          chips                                                ⁢                  after          ⁢                                          ⁢          summing          ⁢                                          ⁢          over          ⁢                                          ⁢          the          ⁢                                          ⁢          users                                        =                ⁢                                            ∑              u                        ⁢                                                  ⁢                                                                                Z                    ~                                    ⁡                                      (                    n                    )                                                  ⁡                                  [                                                                                    P                        R                                            ⁡                                              (                        n                        )                                                              +                                                                  jP                        1                                            ⁡                                              (                        n                        )                                                                              ]                                            ⁢                                                          ⁢              where              ⁢                                                          ⁢              j                                =                      √                          (                              -                1                            )                                                              =                ⁢                              ∑            u                    ⁢                                          ⁢                                                    Z                ~                            ⁡                              (                n                )                                      ⁡                          [                                                sgn                  ⁢                                      {                                                                  P                        R                                            ⁡                                              (                        n                        )                                                              }                                                  +                                  j                  ⁢                                                                          ⁢                  sgn                  ⁢                                      {                                                                  P                        1                                            ⁡                                              (                        n                        )                                                              }                                                              ]                                                              =                ⁢                  Real          ⁢                                          ⁢          Walsh          ⁢                                          ⁢          CDMA          ⁢                                          ⁢          encoded          ⁢                                                            ⁢                                                          ⁢          complex          ⁢                                          ⁢          chips                                                ⁢                  after          ⁢                                          ⁢          PN          ⁢                                          ⁢          scrambling                    
Walsh encoding and channel combining in 4 encodes each of the users {um) and their data symbols {Z(um,km)} with a Walsh code WN(m) (um) drawn from the group m of the N(m) chip channelization codes where um is the user code. A time delay of kmN(m) chips before start of the real Walsh encoding of the data symbol km in each of the user channels, is required for implementation of the multiple data rate user real Walsh encoding and for the summation of the encoded data chips over the users. Output of this multiple data rate real Walsh encoding and summation over the multiple data rate users is the set of real Walsh CDMA encoded chips {{tilde over (Z)}(n)} over the N chip block.
PN scrambling of the real Walsh CDMA encoded chips in 5 is accomplished by encoding the {{tilde over (Z)}(n)} with a complex PN which is constructed as the complex code sequence [PR(n)+jPI(n)] wherein PR(n) and PI(n) are independent PN sequences used for the real and imaginary axes of the complex PN. These PN codes are 2-phase with each chip equal to +/−1 which means PN encoding consists of sign changes with each sign change corresponding to the sign of the PN chip. Encoding with PN means each chip of the summed Walsh encoded data symbols has a sign change when the corresponding PN chip is −1, and remains unchanged for +1 values. This operation is described by a multiplication of each chip of the summed Walsh encoded data symbols with the sign of the PN chip. Purpose of the PN encoding for complex data symbols is to provide scrambling of the summed Walsh encoded data symbols as well as isolation between groups of users. Output of this real Walsh CDMA encoding followed by the complex PN scrambling are the CDMA encoded chips over the N chip block {Z(n)}.
Receiver equations (2) describe a representative multiple data rate real Walsh CDMA decoding for the receiver in FIG. 3. The receiver front end 5 provides estimates {{circumflex over (Z)}(n)} of the transmitted real Walsh CDMA encoded chips {Z(n)}. Orthogonality property 6 is expressed as a matrix product of the real Walsh code chips or equivalently as a matrix product of the Walsh code chip numerical signs, for any of the 2, 4, 8, . . . , N/2, N chip real Walsh channelization codes and their repetitions over the N chip code block. These codes are orthogonal with respect to the user codes within a group. They are also orthogonal between code groups for the allowable subsets of code assignments to the users, for all code repetitions over the N chip code block. This means that the allowable codes {um} in group m are orthogonal to the allowable codes {um+p} in group m+p for all code repetitions of the codes {um} over the N chip code block, for p≧0.
The 2-phase PN codes 7 have the useful decoding property that the square of each code chip is unity which is equivalent to observing that the square of each code chip numerical sign is unity. Decoding algorithms 8 perform the inverse of the signal processing for the encoding in equations (1) to recover estimates {{circumflex over (Z)}(um,km)} of the transmitter user symbols {Z(um,km)}                Current multiple data rate real Walsh CDMA decoding (2) for receiver        5 Receiver front end provides estimates {{circumflex over (Z)}(n)={circumflex over (R)}(n)+jÎ(n)}} of the encoded transmitter chip symbols {Z(n)}        6 Orthogonality properties of the set of real Walsh {2×2, 4×4, 8×8, . . . N×N} matrices                    The N(m)×N(m) Walsh code matrices for all m are orthogonal                        
                              N          ⁡                      (            m            )                                    -          1                    ⁢                        ∑                      n            m                          ⁢                                  ⁢                                            W                              N                ⁡                                  (                  m                  )                                                      ⁡                          (                                                                    c                    ^                                    m                                ,                                  n                  m                                            )                                ⁢                                    W                              N                ⁡                                  (                  m                  )                                                      ⁡                          (                                                n                  m                                ,                                  c                  m                                            )                                            =          δ      ⁡              (                                            c              ^                        m                    ,                      c            m                          )                                                      where            ⁢                                                  ⁢                          c              m                                ,                                    n              m                        =                        ⁢            0                    ,          1          ,          …          ⁢                                          ,                      N            ⁡                          (              m              )                                                                                δ            ⁡                          (                                                                    c                    ^                                    m                                ,                                  c                  m                                            )                                =                    ⁢                      Delta            ⁢                                                  ⁢            function            ⁢                                                  ⁢            of            ⁢                                                  ⁢                                          c                ^                            m                        ⁢                                                  ⁢            and            ⁢                                                  ⁢                          c              m                                                                                =                        ⁢            1                    ,                                    0              ⁢                                                          ⁢              for              ⁢                                                          ⁢                                                c                  ^                                m                                      =                          c              m                                ,                                          ⁢          otherwise                                                        The N(m)×N(m) and N(m+p)×N(m+p) Walsh code matrices for all m and p>0 are orthogonal for a subset of codes {um} and {um+p}                        
                              N          ⁡                      (            m            )                                    -          1                    ⁢                        ∑                      n            m                          ⁢                                  ⁢                                            W                              N                ⁡                                  (                  m                  )                                                      ⁡                          (                                                u                  m                                ,                                  n                  m                                            )                                ·                                    W                              N                ⁡                                  (                                      m                    +                    p                                    )                                                      ⁡                          (                                                u                                      m                    +                    p                                                  ,                                                      n                                          m                      +                      p                                                        =                                                            n                      m                                        +                                                                  k                        m                                            ⁢                                              N                        ⁡                                                  (                          m                          )                                                                                                                                )                                            ⁢                  =                  0        ⁢                                  ⁢        for        ⁢                                  ⁢                  k          m                    =      0        ,  1  ,      2    ⁢                  ⁢    …    ⁢          ,            N      ⁢              /            ⁢              N        ⁡                  (          m          )                      -    1                  7 PN decoding property        
                                          P            ⁡                          (              n              )                                ⁢                      P            ⁡                          (              n              )                                      =                ⁢                  sgn          ⁢                      {                                          P                ⁡                                  (                  n                  )                                            ⁢              sgn              ⁢                              {                                  P                  ⁢                                      (                    n                    )                                                  }                                                                            =                ⁢        1                            8 Decoding algorithm        
                                          Z            ^                    ⁡                      (                          u                              m                ,                                  k                  m                                                      )                          =                ⁢                                            (                              2                ⁢                N                            )                                      -              1                                ⁢                                    ∑                              n                m                                      ⁢                                                  ⁢                                                                                Z                    ^                                    ⁡                                      (                    n                    )                                                  ⁡                                  [                                                            sgn                      ⁢                                              {                                                                              P                            R                                                    ⁡                                                      (                            n                            )                                                                          }                                                              -                                          j                      ⁢                                                                                          ⁢                      sgn                      ⁢                                              {                                                                              P                            1                                                    ⁡                                                      (                            n                            )                                                                          }                                                                              ]                                            ·                                                                      ⁢                  sgn          ⁢                      {                                          W                                  N                  ⁡                                      (                    m                    )                                                              ⁡                              (                                                      n                    =                                                                  n                        m                                            +                                                                        k                          m                                                ⁢                                                  N                          ⁡                                                      (                            m                            )                                                                                                                                ,                                      u                    m                                                  )                                      }                                                  =                ⁢                  Receiver          ⁢                                          ⁢          estimate          ⁢                                          ⁢          of          ⁢                                          ⁢          the          ⁢                                                            ⁢                                                          ⁢          transmitted          ⁢                                          ⁢          complex                                                ⁢                  data          ⁢                                          ⁢          symbol          ⁢                                          ⁢                      Z            ⁡                          (                              u                                  m                  ,                                      k                    m                                                              )                                          
FIG. 1 CDMA transmitter block diagram is representative of a current CDMA transmitter that includes an implementation of the current multiple data rate real Walsh CDMA channelization encoding in equations (1). This block diagram becomes a representative implementation of the CDMA transmitter which implements the multiple data rate hybrid Walsh and generalized hybrid Walsh CDMA encoding, when the current multiple data rate real Walsh CDMA encoding 13 is replaced by the new multiple data rate hybrid Walsh and generalized hybrid Walsh CDMA encoding of this invention.
Signal processing starts with the stream of user input data words 9. Frame processor 10 accepts these data words and performs the encoding and frame formatting, and passes the outputs to the symbol encoder 11 which encodes the frame symbols into amplitude and phase coded symbols {Z(um,k)} 12. These symbols 12 are the inputs to the current multiple data rate real Walsh CDMA encoding in equations (1). Inputs {Z(um,k)} 12 are real Walsh encoded, summed over the users, and scrambled by complex PN in the current multiple date rate real Walsh CDMA encoder 13 to generate the complex output chips {Z(n)} 14. This encoding 13 is a representative implementation of equations (1). These output chips Z(n) are waveform modulated 15 to generate the analog complex signal z(t) which is single sideband upconverted, amplified, and transmitted (Tx) by the analog front end of the transmitter 15 as the real waveform v(t) 16 at the carrier frequency f0 whose amplitude is the real part of the complex envelope of the baseband waveform z(t) multiplied by the carrier frequency and the phase angle φ which accounts for the phase change from the baseband signal to the transmitted signal.
It should be obvious to anyone skilled in the communications art that this example implementation in FIG. 1 clearly defines the fundamental CDMA signal processing relevant to this invention disclosure and it is obvious that this example is representative of the other possible signal processing approaches.
FIG. 2 multiple data rate real Walsh CDMA encoding is a representative implementation of the multiple data rate real Walsh CDMA encoding 13 in FIG. 1 and in equations (1). Inputs are the complex user data symbols {Z(u)} 17. Encoding of each user by the corresponding Walsh code is described in 18 by the implementation of transferring the sign of each Walsh code chip to the user data symbol followed by a 1-to-N expander 1↑N of each data symbol into an N chip sequence using the sign transfer of the Walsh chips. The sign-expander operation 18 generates the N-chip sequence Z(um,km)sgn{W(um, (n=nm+kmN(m))} for n=0, 1, . . . , N−1 for each user {um}. This Walsh encoding serves to spread each user data symbol into an orthogonally encoded chip sequence which is spread over the CDMA communications frequency band. The Walsh encoded chip sequences for each of the user data symbols are summed over the users 19 followed by PN encoding with the scrambling sequence [PR(n)+jPI(n)] 20. PN encoding is implemented by transferring the sign of each PN chip to the summed chip of the Walsh encoded data symbols. Output is the stream of complex multiple data rate real Walsh CDMA encoded chips {Z(n)} 21.
It should be obvious to anyone skilled in the communications art that this example implementation in FIG. 2 clearly defines the fundamental CDMA signal processing relevant to this invention disclosure and it is obvious that this example is representative of the other possible signal processing approaches.
FIG. 3 CDMA receiver block diagram is representative of a current CDMA receiver which includes an implementation of the current multiple data rate real Walsh CDMA decoding in equations (2). This block diagram becomes a representative implementation of the CDMA receiver which implements the multiple data rate hybrid complex Walsh and generalized hybrid complex Walsh CDMA decoding when the current multiple data rate real Walsh CDMA decoding 27 is replaced by the multiple data rate hybrid complex Walsh and generalized hybrid complex Walsh CDMA decoding of this invention.
FIG. 3 signal processing starts with the user transmitted wavefronts incident at the receiver antenna 22 for the users {um}. These wavefronts are combined by addition in the antenna to form the receive (Rx) signal {circumflex over (v)}(t) at the antenna output 22 where {circumflex over (v)}(t) is an estimate of the transmitted signal v(t) 16 in FIG. 1, that is received with errors in time Δt, frequency Δf, phase Δθ, and with an estimate {circumflex over (z)}(t) of the transmitted complex baseband signal z(t) 16 in FIG. 1. This received signal {circumflex over (v)}(t) is amplified and downconverted by the analog front end 23 and then synchronized and analog-to-digital (ADC) converted 24. Outputs from the ADC are filtered and chip detected 25 by the fullband chip detector, to recover estimates {{circumflex over (Z)}(n)}} 26 of the transmitted signal which is the stream of complex CDMA encoded chips {Z(n) 14 in FIG. 1. CDMA decoder 27 implements the algorithms in equations (2) by stripping off the PN code(s) and decoding the received CDMA real Walsh orthogonally encoded chips to recover estimates {{circumflex over (Z)}(um,km)} 28 of the transmitted user data symbols {Z(um,km)} 12 in FIG. 1. These estimates 28 are processed by the symbol decoder 29 and the frame processor 30 to recover estimates 31 of the transmitted user data words.
It should be obvious to anyone skilled in the communications art that this example implementation clearly defines the fundamental current CDMA signal processing relevant to this invention disclosure and it is obvious that this example is representative of the other possible signal processing approaches.
FIG. 4 multiple data rate real Walsh CDMA decoding is a representative implementation of the multiple data rate real Walsh CDMA decoding 27 in FIG. 3 and in equations (2). Inputs are the received estimates of the multiple data rate complex real Walsh CDMA encoded chips {{circumflex over (Z)}(n)} 32. The PN scrambling code is stripped off from these chips 33 by changing the sign of each chip according to the numerical sign of the real and imaginary components of the complex conjugate of the PN code as per the decoding algorithms 8 in equations (2). Real Walsh channelization coding is removed in 34 by a pulse compression operation consisting of multiplying each received chip by the numerical sign of the corresponding Walsh chip for the user and summing the products over the N Walsh chips to recover estimates {{circumflex over (Z)}(um,km)}35 of the user complex data symbols {Z(um,km)} after renormalization by the divisor 2N not depicted in the drawing.
It should be obvious to anyone skilled in the communications art that this example implementation clearly defines the fundamental current CDMA signal processing relevant to this invention disclosure and it is obvious that this example is representative of the other possible signal processing approaches.
For cellular applications the transmitter description describes the transmission signal processing applicable to this invention for both the hub and user terminals, and the receiver describes the corresponding receiving signal processing for the hub and user terminals for applicability to this invention.
For optical communications applications the microwave processing at the front end of both the transmitter and the receiver is replaced by the optical processing which performs the complex modulation for the optical laser transmission in the transmitter and which performs the optical laser receiving function of the microwave processing to recover the complex baseband received signal.